FDOPEN

            
#include <stdio.h>
FILE *fdopen (handle,type);
int handle;                  Handle-р, ссылающийся на открытый файл.
char type;                   Разрешенный тип доступа.

Функция fdopen связывает поток ввода/вывода с файлом, идентифицированным handle , что позволяет сделать файл, открытый как низкоуровневый, форматированным и буферизованным. Символьная строка type определяет тип доступа к требуемому файлу следующим образом:

            
            ТИП                   ОПИСАНИЕ
                                                                  
            "r"          Открыть  для  чтения.  (Этот файл  должен
                         существовать).
                                                                               
            "w"          Открыть пустой файл для записи; если этот
                         файл  ранее  существовал,  его содержимое
                         уничтожается.
                         
            "a"          Открыть файл для  записи  (добавления)  в
                         конец  файла.  Создать  файл заново, если
                         его нет.
                         
            "r+"         Файл открыт  одновременно  для  чтения  и
                         записи. Файл должен существовать.
                         
            "w+"         Открыть  пустой  файл для чтения и записи.
                         Если  этот   файл   существует,  то    его
                         сожержимое уничтожается.
                         
            "a+"         Файл для  чтения  и  добавления.   Создать
                         файл  заново, если его нет.
 

Замечание!
Нужно внимательно применять режимы "w", "w+", так как они могут уничтожить существующие файлы. Специфицированный type должен быть совместим с режимами доступа или sharing -режимом, с которым файл был открыт. За поддержку этой совместимости отвечает пользователь.
Если файл открыт с типом "a" или "a+", все операции записи выполняются в конец файла, хотя при использовании функций fseek или rewind возможно перемещение файлового указателя; однако, перед выполнением любых операций записи он всегда возвращается в конец файла. Таким образом, существующие данные не смогут быть перезаписанными. Когда специфицированы типы "r+", "w", "a", одновременно допускается чтение и запись. (Говорят, что файл открыт для обновления). Поэтому при переключении чтения на запись и наоборот, нужно использовать функции fseek или rewind . Для функции fseek (при необходимости) может быть специфицирована текущая позиция.
Дополнительно к значениям, приведенным выше, может быть добавлен один из следующих символов к строке type , чтобы специфицировать режим преобразования символов новой строки.

            
            Символ               Значение
            
              t          Открыть   в   текстовом   (транслирующем)
                         режиме; ввод комбинации "Возврат  каретки
                         - перевод   строки"   преобразовывать   к
                         единственному  символу "перевод  строки".
                         Вывод  символа "перевод строки"  преобра-
                         зовывать в комбинацию "Возврат каретки  -
                         перевод строки".
            
              b          Открыть  в   двоичном   (нетранслирующем)
                         режиме; предшедствующие    преобразования
                         подавляются.
                         

Если t или b в строке type не заданы, то режим преобразования определяется переменной _fmode , устанавливаемой по умолчанию.

Возвращаемое значение.
Функция fdopen возвращает указатель на открытый поток. В случае ошибки значение указателя равно NULL.

Пример:

            
#include <stdio.h>
#include <fcntl.h>

               FILE *stream;
               int fh;
               fh=open("data", O_RDONLY);
               /*  следующий  оператор  позволяет связать поток с открытым
         файлом */
         
               stream = fdopen(fh, "r");.
      
Hosted by uCoz